/* 
 * File:   Surface.h
 * Author: matt
 *
 * Created on February 3, 2011, 6:46 PM
 */

#ifndef SURFACE_H
#define	SURFACE_H

#include "Ray.h"
#include "Box.h"
#include "Shader.h"
#include "Record.h"

class Surface {
private:
    
public:
    virtual bool isHit(Ray&, double, double, Record&) = 0;
    virtual Box boundingBox() = 0;
    virtual cs5721::Vector3D getNormal(cs5721::Vector3D&) = 0;
    virtual Shader* getShader() = 0;
    virtual cs5721::Vector3D getColor() = 0;
    virtual void print() = 0;
};

#endif	/* SURFACE_H */

